﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

/*Consideraciones:
1) al "borrar" un mail, este debe ir a eliminados o papelera. Si el usuario decide eliminar el mail de papelera, este debe ser borrado fisicamente de la tabla.
2) al clikear en abrir un mail, este se redirciona al form de mails viejos??.
3) para enviar o reenviar un mail, se debe validar que el destinatario exista (este registrado). En caso contrario no se debe poder enviar.
*/

namespace ProyectoLab4
{
    public partial class Mails : System.Web.UI.Page
    {
        GestionMails Mail = new GestionMails();
        String loginUsuario;
        String consulta;

        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (!IsPostBack)
            {
                Response.Cookies["Usuario"].Value = ((TextBox)PreviousPage.FindControl("txtUsuario")).Text;
                loginUsuario = ((TextBox)PreviousPage.FindControl("txtUsuario")).Text;
                consulta = "SELECT * FROM Bandeja_Mails WHERE correo_destinatario='" + loginUsuario + "' AND estado='1' AND borrador='0'";
                Mail.CargarBandeja(consulta, ref grdMails);
            }
            else
            {
                Response.Cookies["Usuario"].Value = Request.Cookies["Usuario"].Value;
            }
         }

        protected void btnBandejaEntrada_Click(object sender, EventArgs e)
        {
            grdMails.Columns[7].Visible = true;
            grdMails.Columns[9].Visible = false;
            grdMails.Columns[10].Visible = false;
            loginUsuario = Request.Cookies["Usuario"].Value;
            consulta = "SELECT * FROM Bandeja_Mails WHERE correo_destinatario='" + loginUsuario + "' AND estado='1' AND borrador='0'";
            Mail.CargarBandeja(consulta, ref grdMails);
        }

        protected void btnDestacados_Click(object sender, EventArgs e)
        {
            grdMails.Columns[7].Visible = true;
            grdMails.Columns[9].Visible = false;
            grdMails.Columns[10].Visible = false;
            loginUsuario = Request.Cookies["Usuario"].Value;
            consulta = "SELECT * FROM Bandeja_Mails WHERE correo_destinatario='" + loginUsuario + "' AND destacado='1' AND estado='1' AND borrador='0'"; 
            Mail.CargarBandeja(consulta, ref grdMails);
        }

        protected void btnEnviados_Click(object sender, EventArgs e)
        {
            grdMails.Columns[7].Visible = true;
            grdMails.Columns[9].Visible = false;
            grdMails.Columns[10].Visible = false;
            loginUsuario = Request.Cookies["Usuario"].Value;
            consulta = "SELECT * FROM Bandeja_Mails WHERE correo_remitente='" + loginUsuario + "' AND estado='1' AND borrador='0'";
            Mail.CargarBandeja(consulta, ref grdMails);
        }

        protected void btnBorrador_Click(object sender, EventArgs e)
        {
            grdMails.Columns[7].Visible = true;
            grdMails.Columns[9].Visible = false;
            grdMails.Columns[10].Visible = false;
            loginUsuario = Request.Cookies["Usuario"].Value;
            consulta = "SELECT * FROM Bandeja_Mails WHERE correo_remitente='" + loginUsuario + "' AND estado='1' AND borrador='1'";
            Mail.CargarBandeja(consulta, ref grdMails);
        }

        protected void btnPapelera_Click(object sender, EventArgs e)
        {
            grdMails.Columns[7].Visible = false;
            grdMails.Columns[9].Visible = true;
            grdMails.Columns[10].Visible = true;
            loginUsuario = Request.Cookies["Usuario"].Value;
            consulta = "SELECT * FROM Bandeja_Mails WHERE (correo_destinatario='" + loginUsuario + "'  OR correo_remitente='" + loginUsuario + "') AND estado='0'";
            Mail.CargarBandeja(consulta, ref grdMails);
        }

        protected void grdMails_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument.ToString());
            String Destacado = "", IdMail = "", Estado="";
            grdMails.SelectedIndex = index;
            loginUsuario = Request.Cookies["Usuario"].Value;
            foreach (GridViewRow gvr in grdMails.Rows)
            {
                if (gvr.RowIndex == index)
                {
                    Destacado = ((CheckBox)gvr.FindControl("CheckBox1")).Checked.ToString();
                    IdMail = grdMails.SelectedDataKey["id_mail"].ToString();
                    Estado = grdMails.SelectedDataKey["estado"].ToString();
                }
            }

            if (e.CommandName == "Select")
            {
                if (Destacado == "True")
                    Destacado = "False";
                else
                    Destacado = "True";
                consulta = "UPDATE Bandeja_Mails SET destacado='" + Destacado + "' WHERE correo_destinatario='" + loginUsuario + "' AND id_mail='" + IdMail + "'";
                Mail.DestacarMail(consulta);
                consulta = "SELECT * FROM Bandeja_Mails WHERE correo_destinatario='" + loginUsuario + "' AND estado='1' AND borrador='0'";
                Mail.CargarBandeja(consulta,ref grdMails);
                
            }

            if (e.CommandName == "Borrar")
            {
                String consultaActual="";
                if (Estado == "1")
                {
                    Estado = "0";
                    consultaActual = " AND estado='1'";
                }
                else
                {
                    Estado = "1";
                    consultaActual = " AND estado='0'";
                }

                consulta = "UPDATE Bandeja_Mails SET estado='" + Estado + "' WHERE (correo_destinatario='" + loginUsuario + "'  OR correo_remitente='" + loginUsuario + "') AND id_mail='" + IdMail + "'";
                Mail.BorrarMail(consulta);

                consulta = "SELECT * FROM Bandeja_Mails WHERE correo_destinatario='" + loginUsuario + "'" + consultaActual + " AND borrador='0'";
            }

            if (e.CommandName == "Eliminar")
            {
                consulta = "DELETE FROM Bandeja_Mails WHERE (correo_destinatario='" + loginUsuario + "'  OR correo_remitente='" + loginUsuario + "') AND id_mail='" + IdMail + "'";
            }
            Mail.CargarBandeja(consulta, ref grdMails);
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            Server.Transfer("MailNuevo.aspx");
        }

        protected void lnkCerrar_Click(object sender, EventArgs e)
        {
            Request.Cookies["Usuario"].Expires = DateTime.Now;
        }

    }
}
